Los datos pertenecen a reseñas de vinos. Los datos provienen de WineEnthusiast y fueron tomados por Zack Thoutt. Se tomaron durante la semana del 15 de junio de 2017.
https://www.kaggle.com/datasets/zynicide/wine-reviews https://www.winemag.com/?s=&drink_type=wine https://github.com/zackthoutt/wine-deep-learning/blob/master/README.md
# Código para cargar o leer los datos
vinos<- read_csv("datos/vinos.csv")
Tiene las siguientes variables:
names(vinos) #La función names() por su parte, nos devuelve los nombres de las variables
## [1] "pais" "nombre" "puntos" "precio"
## [5] "provincia" "region_1" "region_2" "variedad"
## [9] "vina" "titulo_resena"
cantidad_obs_vinos <-count(vinos) #La funcion count cuenta el nro de filas
Se pudieron encontrar en la tabla vinos 129971 observaciones
cantidad_variables_vinos <-length(vinos) # La funcion lengrh devuelve el tamaño de un elemento
Posee 10 Variables
valor_medio_precio <- summarise(vinos, valor_medio = mean(precio,na.rm = TRUE))
El valor medio de la variable precio es 35.3633891
desvio_std_precio <- summarise(vinos, desvio_std = sd(precio,na.rm = TRUE))
El desvío estándar de la variable precio es 41.0222177
valor_max_precio <- summarise(vinos, Valor_max = max(precio,na.rm = TRUE))
El valor máximo de la variable precio es 3300
valor_min_precio <- summarise(vinos, Valor_min = min(precio,na.rm = TRUE))
El valor minimo de la variable precio es 4
valor_medio_puntos <- summarise(vinos, valor_medio = mean(puntos,na.rm = TRUE))
El valor medio de la variable puntos es 88.4471382
desv_std_puntos <- summarise(vinos, desvio_std = sd(puntos,na.rm = TRUE))
El desvios estandar de la variable puntos es 3.0397302
valor_max_puntos <-summarise(vinos,Valor_max = max(puntos,na.rm = TRUE))
valor_min_puntos <-summarise(vinos,Valor_min = min(puntos,na.rm = TRUE))
El valor minimo de la variable precio es 100
El valor minimo de la variable precio es 80
vinos|>
group_by(pais)|>
summarise(n=n())|>
datatable()
vinos|>
group_by(nombre)|>
summarise(n=n())|>
datatable()
vinos|>
group_by(puntos)|>
summarise(n=n())|>
datatable()
vinos|>
group_by(precio)|>
summarise(n=n())|>
datatable()
Se puede concluir que la provincia con mayor produccion de vinos es California
vinos|>
group_by(provincia)|>
summarise(n=n()) |>
arrange(desc(n))|>
datatable()
Se puede observar que la variable REGION_1 presenta una gran cantidad de valores NA
vinos|>
group_by(region_1)|>
summarise(n=n()) |>
arrange(desc(n))|>
datatable()
Se puede observar que la variable REGION_2 presenta una gran cantidad de valores NA
vinos|>
group_by(region_2)|>
summarise(n=n()) |>
arrange(desc(n))|>
datatable()
La variedad de uvas mas usada para la fabricacion de vinos es la Pinot Noir
vinos|>
group_by(variedad)|>
summarise(n=n()) |>
arrange(desc(n))|>
datatable()
vinos|>
group_by(vina)|>
summarise(n=n())|>
datatable()
vinos|>
group_by(titulo_resena)|>
summarise(n=n())|>
datatable()
Definición valores faltantes en R,se entiende valores que debieron haberse registrado, pero no lo fueron. R almacena los valores faltantes como NA, lo que significa Not Available
Primero preguntamos ¿Hay valores faltantes?
any_na(vinos) #La función any_na() por su parte, nos devuelve TRUE si hay valores faltantes
## [1] TRUE
valores_faltantes <- sum(is.na(vinos))
Los cantidad de valores faltantes (NA) de la tabla vinos es 147295
Los valores faltantes para cada variable es la siguiente
apply(X = is.na(vinos), MARGIN = 2, FUN = sum)
## pais nombre puntos precio provincia
## 63 37465 0 8996 63
## region_1 region_2 variedad vina titulo_resena
## 21247 79460 1 0 0
¿Hay diferencias? Si existen diferencias. Donde más datos faltantes hay es en la variable ‘nombre’ y ‘region_2’. Los datos faltantes son datos que deberían estar pero no fueron registrados.
vinos|>
group_by(puntos)|>
summarise(n=n()) |>
arrange(desc(puntos)) |>
ggplot(mapping = aes(x= puntos, y = n))+
geom_col()
Aqui ya podemos ver que unos de los mayores productores de vino es EEUU.
vinos|>
group_by(pais)|>
summarise(n=n())|>
arrange(desc(n))|>
datatable()
“Existe relación entre el precio del vino y la puntuación?”
Si bien no es particularmente esclarecedor, muestra que hay cierta concentración de vinos de menor precio en el rango de 85 a 92,5 puntos.
Podemos deducir mediante el grafico que se produce una concentracion de vinos de menor precio en el rango comprendido entre los 85 y 90 puntos aproximadamente, se limito la muestra para vinos por debajo de los $200.
# Limitamos el precio a $200
vinos2 <- vinos |>
group_by(nombre)|>
summarise(valor_medio_precio=mean(precio,na.rm=TRUE),valor_medio_puntos=mean(puntos,na.rm=TRUE) )|>
filter(valor_medio_precio < 200 & !is.na(valor_medio_precio))
# Datos
vinos2 |>
ggplot(aes(valor_medio_precio, valor_medio_puntos)) +
geom_point(position="jitter") +
geom_hex(bins = 100) +
labs(title="Puntuacion del Vino vs. Precio",
subtitle="(Precio inferior a $200)",
x="Precio ($)", y="Puntos (0-100)")
Se desea saber cómo se comparan los países en términos de puntos para cada vino. ¿Hay alguna diferencia en la calidad del vino entre cada país? En particular, se va comparar los vinos de EEUU con los vinos italianos y franceses. Se usara un diagrama de caja que también incluye la media.
¿Existe relación entre el país de donde proviene el vino y la puntuación?.
Como ya sabemos los mayores productores de vino son Francia, Italia y Estados Unidos. A continuación se organizará los datos por país y se generará un gráfico de barras que muestra la cantidad de vinos elaborado en cada país, se limitará la muestra a los 20 países que mayor producción tienen.
vinos_pais <- group_by(vinos,pais) |>
summarise(n= n()) |>
filter(n>30)|>
arrange(desc(n))
head(vinos_pais,20)|>
datatable()
ggplot(vinos_pais,aes(reorder(pais, n), n, fill= pais)) +
geom_bar(stat="identity") +
geom_text(aes(label=n), hjust=-.1, vjust=.25) +
xlab("PAIS") +
ylab("vinos Elaborados") +
ylim(0, 60000) +
guides(fill="none")+
coord_flip()
Tomamos estos tres paises para comparar en términos de puntos.
EEUU_Francia_Italia <- filter(vinos, pais %in% c("Estados Unidos","Francia","Italia"))
Se usará un diagrama de caja que también incluye la media.
ggplot(EEUU_Francia_Italia, mapping= aes(pais,puntos, fill=pais))+
geom_boxplot()+
stat_summary(fun.y="mean", geom="point", shape=21, fill= "red") +
scale_x_discrete(labels=c("Estados Unidos","Francia", "Italia")) +
guides(fill=FALSE) +
theme(axis.title.x=element_blank())
Es interesante notar que tanto Italia como EEUU tienen medias más altas que las medianas, lo que significa que tienen unos pocos vinos selectos excepcionales, mientras que Francia tiene casi exactamente la misma mediana y media, las cuales son más altas que Italia y EEUU, lo que significa que Francia posee vinos de mejor calidad (puntuación).